/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ucb.ProjetoFinal.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author DCBorges
 */
@Entity
@Table(name = "sdctb004_prtce_gro")
@NamedQueries({
    @NamedQuery(name = "ParticipanteGrupo.findAll", query = "SELECT p FROM ParticipanteGrupo p"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuSqnclPrte", query = "SELECT p FROM ParticipanteGrupo p WHERE p.participanteGrupoPK.nuSqnclPrte = :nuSqnclPrte"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuSnqclGrpoFmlr", query = "SELECT p FROM ParticipanteGrupo p WHERE p.participanteGrupoPK.nuSnqclGrpoFmlr = :nuSnqclGrpoFmlr"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuCpf", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuCpf = :nuCpf"),
    @NamedQuery(name = "ParticipanteGrupo.findByNoParticipante", query = "SELECT p FROM ParticipanteGrupo p WHERE p.noParticipante = :noParticipante"),
    @NamedQuery(name = "ParticipanteGrupo.findByDtNascimento", query = "SELECT p FROM ParticipanteGrupo p WHERE p.dtNascimento = :dtNascimento"),
    @NamedQuery(name = "ParticipanteGrupo.findByIcSexo", query = "SELECT p FROM ParticipanteGrupo p WHERE p.icSexo = :icSexo"),
    @NamedQuery(name = "ParticipanteGrupo.findByDeNacionalidade", query = "SELECT p FROM ParticipanteGrupo p WHERE p.deNacionalidade = :deNacionalidade"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuIdentidade", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuIdentidade = :nuIdentidade"),
    @NamedQuery(name = "ParticipanteGrupo.findBySgOrgaoEmissor", query = "SELECT p FROM ParticipanteGrupo p WHERE p.sgOrgaoEmissor = :sgOrgaoEmissor"),
    @NamedQuery(name = "ParticipanteGrupo.findByUfIdentidade", query = "SELECT p FROM ParticipanteGrupo p WHERE p.ufIdentidade = :ufIdentidade"),
    @NamedQuery(name = "ParticipanteGrupo.findByDtEmissao", query = "SELECT p FROM ParticipanteGrupo p WHERE p.dtEmissao = :dtEmissao"),
    @NamedQuery(name = "ParticipanteGrupo.findByCoEstadoCivil", query = "SELECT p FROM ParticipanteGrupo p WHERE p.coEstadoCivil = :coEstadoCivil"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuCpfConjuge", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuCpfConjuge = :nuCpfConjuge"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuNis", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuNis = :nuNis"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuDvNis", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuDvNis = :nuDvNis"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuCep", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuCep = :nuCep"),
    @NamedQuery(name = "ParticipanteGrupo.findByNoLogradouro", query = "SELECT p FROM ParticipanteGrupo p WHERE p.noLogradouro = :noLogradouro"),
    @NamedQuery(name = "ParticipanteGrupo.findByNoComplemento", query = "SELECT p FROM ParticipanteGrupo p WHERE p.noComplemento = :noComplemento"),
    @NamedQuery(name = "ParticipanteGrupo.findByNoBairro", query = "SELECT p FROM ParticipanteGrupo p WHERE p.noBairro = :noBairro"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuDddComercial", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuDddComercial = :nuDddComercial"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuFoneComercial", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuFoneComercial = :nuFoneComercial"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuDddResidencial", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuDddResidencial = :nuDddResidencial"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuFoneRsdncl", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuFoneRsdncl = :nuFoneRsdncl"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuDddCelular", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuDddCelular = :nuDddCelular"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuCelular", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuCelular = :nuCelular"),
    @NamedQuery(name = "ParticipanteGrupo.findByNoEmail", query = "SELECT p FROM ParticipanteGrupo p WHERE p.noEmail = :noEmail"),
    @NamedQuery(name = "ParticipanteGrupo.findByNoProfissao", query = "SELECT p FROM ParticipanteGrupo p WHERE p.noProfissao = :noProfissao"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuSegmento", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuSegmento = :nuSegmento"),
    @NamedQuery(name = "ParticipanteGrupo.findByVrRendaDeclarada", query = "SELECT p FROM ParticipanteGrupo p WHERE p.vrRendaDeclarada = :vrRendaDeclarada"),
    @NamedQuery(name = "ParticipanteGrupo.findByTsInclusao", query = "SELECT p FROM ParticipanteGrupo p WHERE p.tsInclusao = :tsInclusao"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuParticao", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuParticao = :nuParticao"),
    @NamedQuery(name = "ParticipanteGrupo.findByIcSituacaoCnsla", query = "SELECT p FROM ParticipanteGrupo p WHERE p.icSituacaoCnsla = :icSituacaoCnsla"),
    @NamedQuery(name = "ParticipanteGrupo.findByNuEnderecoPrtce", query = "SELECT p FROM ParticipanteGrupo p WHERE p.nuEnderecoPrtce = :nuEnderecoPrtce")})
public class ParticipanteGrupo implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected ParticipanteGrupoPK participanteGrupoPK;
    @Column(name = "NU_CPF")
    private Long nuCpf;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "NO_PARTICIPANTE")
    private String noParticipante;
    @Basic(optional = false)
    @NotNull
    @Column(name = "DT_NASCIMENTO")
    @Temporal(TemporalType.DATE)
    private Date dtNascimento;
    @Basic(optional = false)
    @NotNull
    @Column(name = "IC_SEXO")
    private short icSexo;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 10)
    @Column(name = "DE_NACIONALIDADE")
    private String deNacionalidade;
    @Column(name = "NU_IDENTIDADE")
    private Long nuIdentidade;
    @Size(max = 12)
    @Column(name = "SG_ORGAO_EMISSOR")
    private String sgOrgaoEmissor;
    @Size(max = 2)
    @Column(name = "UF_IDENTIDADE")
    private String ufIdentidade;
    @Column(name = "DT_EMISSAO")
    @Temporal(TemporalType.DATE)
    private Date dtEmissao;
    @Column(name = "CO_ESTADO_CIVIL")
    private Short coEstadoCivil;
    @Column(name = "NU_CPF_CONJUGE")
    private Long nuCpfConjuge;
    @Basic(optional = false)
    @NotNull
    @Column(name = "NU_NIS")
    private long nuNis;
    @Column(name = "NU_DV_NIS")
    private Short nuDvNis;
    @Basic(optional = false)
    @NotNull
    @Column(name = "NU_CEP")
    private int nuCep;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 40)
    @Column(name = "NO_LOGRADOURO")
    private String noLogradouro;
    @Size(max = 25)
    @Column(name = "NO_COMPLEMENTO")
    private String noComplemento;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 35)
    @Column(name = "NO_BAIRRO")
    private String noBairro;
    @Size(max = 4)
    @Column(name = "NU_DDD_COMERCIAL")
    private String nuDddComercial;
    @Size(max = 8)
    @Column(name = "NU_FONE_COMERCIAL")
    private String nuFoneComercial;
    @Size(max = 4)
    @Column(name = "NU_DDD_RESIDENCIAL")
    private String nuDddResidencial;
    @Size(max = 8)
    @Column(name = "NU_FONE_RSDNCL")
    private String nuFoneRsdncl;
    @Size(max = 4)
    @Column(name = "NU_DDD_CELULAR")
    private String nuDddCelular;
    @Size(max = 8)
    @Column(name = "NU_CELULAR")
    private String nuCelular;
    @Size(max = 60)
    @Column(name = "NO_EMAIL")
    private String noEmail;
    @Size(max = 30)
    @Column(name = "NO_PROFISSAO")
    private String noProfissao;
    @Column(name = "NU_SEGMENTO")
    private Short nuSegmento;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "VR_RENDA_DECLARADA")
    private BigDecimal vrRendaDeclarada;
    @Basic(optional = false)
    @NotNull
    @Column(name = "TS_INCLUSAO")
    @Temporal(TemporalType.TIMESTAMP)
    private Date tsInclusao;
    @Basic(optional = false)
    @NotNull
    @Column(name = "NU_PARTICAO")
    private short nuParticao;
    @Column(name = "IC_SITUACAO_CNSLA")
    private Character icSituacaoCnsla;
    @Size(max = 5)
    @Column(name = "NU_ENDERECO_PRTCE")
    private String nuEnderecoPrtce;
    @OneToMany(mappedBy = "participanteGrupo")
    private List<FgtsMedia> fgtsMediaList;
    @OneToMany(mappedBy = "participanteGrupo")
    private List<RendaParticipante> rendaParticipanteList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "participanteGrupo")
    private List<HistoricoFgts> historicoFgtsList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "participanteGrupo")
    private List<RaisMedia> raisMediaList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "participanteGrupo")
    private List<PesquisaCadastral> pesquisaCadastralList;
    @JoinColumn(name = "SG_UF", referencedColumnName = "SG_UF")
    @ManyToOne
    private UnidadeFederativa sgUf;
    @JoinColumn(name = "NU_SNQCL_GRPO_FMLR", referencedColumnName = "NU_SNQCL_GRPO_FMLR", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private GrupoFamiliar grupoFamiliar;
    @JoinColumn(name = "CO_PAPEL_PRTCE", referencedColumnName = "CO_PAPEL_PRTCPE")
    @ManyToOne(optional = false)
    private PapelParticipante coPapelPrtce;

    public ParticipanteGrupo() {
    }

    public ParticipanteGrupo(ParticipanteGrupoPK participanteGrupoPK) {
        this.participanteGrupoPK = participanteGrupoPK;
    }

    public ParticipanteGrupo(ParticipanteGrupoPK participanteGrupoPK, String noParticipante, Date dtNascimento, short icSexo, String deNacionalidade, long nuNis, int nuCep, String noLogradouro, String noBairro, Date tsInclusao, short nuParticao) {
        this.participanteGrupoPK = participanteGrupoPK;
        this.noParticipante = noParticipante;
        this.dtNascimento = dtNascimento;
        this.icSexo = icSexo;
        this.deNacionalidade = deNacionalidade;
        this.nuNis = nuNis;
        this.nuCep = nuCep;
        this.noLogradouro = noLogradouro;
        this.noBairro = noBairro;
        this.tsInclusao = tsInclusao;
        this.nuParticao = nuParticao;
    }

    public ParticipanteGrupo(short nuSqnclPrte, int nuSnqclGrpoFmlr) {
        this.participanteGrupoPK = new ParticipanteGrupoPK(nuSqnclPrte, nuSnqclGrpoFmlr);
    }

    public ParticipanteGrupoPK getParticipanteGrupoPK() {
        return participanteGrupoPK;
    }

    public void setParticipanteGrupoPK(ParticipanteGrupoPK participanteGrupoPK) {
        this.participanteGrupoPK = participanteGrupoPK;
    }

    public Long getNuCpf() {
        return nuCpf;
    }

    public void setNuCpf(Long nuCpf) {
        this.nuCpf = nuCpf;
    }

    public String getNoParticipante() {
        return noParticipante;
    }

    public void setNoParticipante(String noParticipante) {
        this.noParticipante = noParticipante;
    }

    public Date getDtNascimento() {
        return dtNascimento;
    }

    public void setDtNascimento(Date dtNascimento) {
        this.dtNascimento = dtNascimento;
    }

    public short getIcSexo() {
        return icSexo;
    }

    public void setIcSexo(short icSexo) {
        this.icSexo = icSexo;
    }

    public String getDeNacionalidade() {
        return deNacionalidade;
    }

    public void setDeNacionalidade(String deNacionalidade) {
        this.deNacionalidade = deNacionalidade;
    }

    public Long getNuIdentidade() {
        return nuIdentidade;
    }

    public void setNuIdentidade(Long nuIdentidade) {
        this.nuIdentidade = nuIdentidade;
    }

    public String getSgOrgaoEmissor() {
        return sgOrgaoEmissor;
    }

    public void setSgOrgaoEmissor(String sgOrgaoEmissor) {
        this.sgOrgaoEmissor = sgOrgaoEmissor;
    }

    public String getUfIdentidade() {
        return ufIdentidade;
    }

    public void setUfIdentidade(String ufIdentidade) {
        this.ufIdentidade = ufIdentidade;
    }

    public Date getDtEmissao() {
        return dtEmissao;
    }

    public void setDtEmissao(Date dtEmissao) {
        this.dtEmissao = dtEmissao;
    }

    public Short getCoEstadoCivil() {
        return coEstadoCivil;
    }

    public void setCoEstadoCivil(Short coEstadoCivil) {
        this.coEstadoCivil = coEstadoCivil;
    }

    public Long getNuCpfConjuge() {
        return nuCpfConjuge;
    }

    public void setNuCpfConjuge(Long nuCpfConjuge) {
        this.nuCpfConjuge = nuCpfConjuge;
    }

    public long getNuNis() {
        return nuNis;
    }

    public void setNuNis(long nuNis) {
        this.nuNis = nuNis;
    }

    public Short getNuDvNis() {
        return nuDvNis;
    }

    public void setNuDvNis(Short nuDvNis) {
        this.nuDvNis = nuDvNis;
    }

    public int getNuCep() {
        return nuCep;
    }

    public void setNuCep(int nuCep) {
        this.nuCep = nuCep;
    }

    public String getNoLogradouro() {
        return noLogradouro;
    }

    public void setNoLogradouro(String noLogradouro) {
        this.noLogradouro = noLogradouro;
    }

    public String getNoComplemento() {
        return noComplemento;
    }

    public void setNoComplemento(String noComplemento) {
        this.noComplemento = noComplemento;
    }

    public String getNoBairro() {
        return noBairro;
    }

    public void setNoBairro(String noBairro) {
        this.noBairro = noBairro;
    }

    public String getNuDddComercial() {
        return nuDddComercial;
    }

    public void setNuDddComercial(String nuDddComercial) {
        this.nuDddComercial = nuDddComercial;
    }

    public String getNuFoneComercial() {
        return nuFoneComercial;
    }

    public void setNuFoneComercial(String nuFoneComercial) {
        this.nuFoneComercial = nuFoneComercial;
    }

    public String getNuDddResidencial() {
        return nuDddResidencial;
    }

    public void setNuDddResidencial(String nuDddResidencial) {
        this.nuDddResidencial = nuDddResidencial;
    }

    public String getNuFoneRsdncl() {
        return nuFoneRsdncl;
    }

    public void setNuFoneRsdncl(String nuFoneRsdncl) {
        this.nuFoneRsdncl = nuFoneRsdncl;
    }

    public String getNuDddCelular() {
        return nuDddCelular;
    }

    public void setNuDddCelular(String nuDddCelular) {
        this.nuDddCelular = nuDddCelular;
    }

    public String getNuCelular() {
        return nuCelular;
    }

    public void setNuCelular(String nuCelular) {
        this.nuCelular = nuCelular;
    }

    public String getNoEmail() {
        return noEmail;
    }

    public void setNoEmail(String noEmail) {
        this.noEmail = noEmail;
    }

    public String getNoProfissao() {
        return noProfissao;
    }

    public void setNoProfissao(String noProfissao) {
        this.noProfissao = noProfissao;
    }

    public Short getNuSegmento() {
        return nuSegmento;
    }

    public void setNuSegmento(Short nuSegmento) {
        this.nuSegmento = nuSegmento;
    }

    public BigDecimal getVrRendaDeclarada() {
        return vrRendaDeclarada;
    }

    public void setVrRendaDeclarada(BigDecimal vrRendaDeclarada) {
        this.vrRendaDeclarada = vrRendaDeclarada;
    }

    public Date getTsInclusao() {
        return tsInclusao;
    }

    public void setTsInclusao(Date tsInclusao) {
        this.tsInclusao = tsInclusao;
    }

    public short getNuParticao() {
        return nuParticao;
    }

    public void setNuParticao(short nuParticao) {
        this.nuParticao = nuParticao;
    }

    public Character getIcSituacaoCnsla() {
        return icSituacaoCnsla;
    }

    public void setIcSituacaoCnsla(Character icSituacaoCnsla) {
        this.icSituacaoCnsla = icSituacaoCnsla;
    }

    public String getNuEnderecoPrtce() {
        return nuEnderecoPrtce;
    }

    public void setNuEnderecoPrtce(String nuEnderecoPrtce) {
        this.nuEnderecoPrtce = nuEnderecoPrtce;
    }

    public List<FgtsMedia> getFgtsMediaList() {
        return fgtsMediaList;
    }

    public void setFgtsMediaList(List<FgtsMedia> fgtsMediaList) {
        this.fgtsMediaList = fgtsMediaList;
    }

    public List<RendaParticipante> getRendaParticipanteList() {
        return rendaParticipanteList;
    }

    public void setRendaParticipanteList(List<RendaParticipante> rendaParticipanteList) {
        this.rendaParticipanteList = rendaParticipanteList;
    }

    public List<HistoricoFgts> getHistoricoFgtsList() {
        return historicoFgtsList;
    }

    public void setHistoricoFgtsList(List<HistoricoFgts> historicoFgtsList) {
        this.historicoFgtsList = historicoFgtsList;
    }

    public List<RaisMedia> getRaisMediaList() {
        return raisMediaList;
    }

    public void setRaisMediaList(List<RaisMedia> raisMediaList) {
        this.raisMediaList = raisMediaList;
    }

    public List<PesquisaCadastral> getPesquisaCadastralList() {
        return pesquisaCadastralList;
    }

    public void setPesquisaCadastralList(List<PesquisaCadastral> pesquisaCadastralList) {
        this.pesquisaCadastralList = pesquisaCadastralList;
    }

    public UnidadeFederativa getSgUf() {
        return sgUf;
    }

    public void setSgUf(UnidadeFederativa sgUf) {
        this.sgUf = sgUf;
    }

    public GrupoFamiliar getGrupoFamiliar() {
        return grupoFamiliar;
    }

    public void setGrupoFamiliar(GrupoFamiliar grupoFamiliar) {
        this.grupoFamiliar = grupoFamiliar;
    }

    public PapelParticipante getCoPapelPrtce() {
        return coPapelPrtce;
    }

    public void setCoPapelPrtce(PapelParticipante coPapelPrtce) {
        this.coPapelPrtce = coPapelPrtce;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (participanteGrupoPK != null ? participanteGrupoPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ParticipanteGrupo)) {
            return false;
        }
        ParticipanteGrupo other = (ParticipanteGrupo) object;
        if ((this.participanteGrupoPK == null && other.participanteGrupoPK != null) || (this.participanteGrupoPK != null && !this.participanteGrupoPK.equals(other.participanteGrupoPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "br.ucb.ProjetoFinal.domain.ParticipanteGrupo[ participanteGrupoPK=" + participanteGrupoPK + " ]";
    }
    
}
